App({
  globalData: {
    userInfo: null,
    technicianInfo: null,
    // 开发环境配置
    // baseUrl: 'http://localhost:8080',  // 本地开发时使用
    baseUrl: 'http://172.20.10.2:8080',  // 局域网开发时使用，已根据你的IP地址修改
    // baseUrl: 'https://your-domain.com', // 生产环境使用
    token: ''
  },
  onLaunch() {
    // 检查登录状态
    const token = wx.getStorageSync('token')
    if (token) {
      this.globalData.token = token
    }
    
    // 开发环境配置
    console.log('小程序启动')
  },

  // 检查工程师登录状态
  checkTechnicianLogin() {
    const token = wx.getStorageSync('technicianToken');
    if (!token) {
      return false;
    }
    return true;
  },

  // 跳转到用户端主页面
  redirectToUserMain() {
    wx.reLaunch({
      url: '/pages/mine/mine'
    });
  },

  // 跳转到工程师登录页
  redirectToTechnicianLogin() {
    wx.reLaunch({
      url: '/pages/worker/login'
    });
  },

  // 封装请求方法
  request(options) {
    const token = wx.getStorageSync('technicianToken');
    const header = {
      ...options.header,
      'Content-Type': 'application/json'
    };
    
    if (token) {
      header['Authorization'] = token;
    }

    return new Promise((resolve, reject) => {
      wx.request({
        ...options,
        url: `${this.globalData.baseUrl}${options.url}`,  // 确保URL正确拼接
        header,
        success: (res) => {
          if (res.statusCode === 401) {
            // token失效，清除存储并跳转到登录页
            wx.removeStorageSync('technicianToken');
            wx.removeStorageSync('technicianInfo');
            this.globalData.technicianInfo = null;
            this.redirectToTechnicianLogin();
            reject(new Error('登录已过期'));
          } else {
            resolve(res);
          }
        },
        fail: reject
      });
    });
  }
}) 